﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DDD.Core;

namespace DDDTest.Helper {
    public class MyTestMaterial : Material {

        public bool R2 { get; set; }
        public Vector2<bool> RG2 { get; set; }
        public Vector3<bool> RGB2 { get; set; }
        public Vector4<bool> RGBA2 { get; set; }

        public byte R8ui { get; set; }
        public Vector2<byte> RG8ui { get; set; }
        public Vector3<byte> RGB8ui { get; set; }
        public Vector4<byte> RGBA8ui { get; set; }

        public sbyte R8i { get; set; }
        public Vector2<sbyte> RG8i { get; set; }
        public Vector3<sbyte> RGB8i { get; set; }
        public Vector4<sbyte> RGBA8i { get; set; }

        public ushort R16ui { get; set; }
        public Vector2<ushort> RG16ui { get; set; }
        public Vector3<ushort> RGB16ui { get; set; }
        public Vector4<ushort> RGBA16ui { get; set; }

        public short R16i { get; set; }
        public Vector2<short> RG16i { get; set; }
        public Vector3<short> RGB16i { get; set; }
        public Vector4<short> RGBA16i { get; set; }

        public uint R32ui { get; set; }
        public Vector2<uint> RG32ui { get; set; }
        public Vector3<uint> RGB32ui { get; set; }
        public Vector4<uint> RGBA32ui { get; set; }

        public int R32i { get; set; }
        public Vector2<int> RG32i { get; set; }
        public Vector3<int> RGB32i { get; set; }
        public Vector4<int> RGBA32i { get; set; }
        
        public float R32f { get; set; }
        public Vector2<float> RG32f { get; set; }
        public Vector3<float> RGB32f { get; set; }
        public Vector4<float> RGBA32f { get; set; }

        public Matrix3x3 Matrix3x3 { get; set; }
        public Matrix4x4 Matrix4x4 { get; set; }
        public Sampler Sampler { get; set; }

        public bool[] Array2 { get; set; }
        public sbyte[] Array8i { get; set; }
        public byte[] Array8ui { get; set; }
        public short[] Array16i { get; set; }
        public ushort[] Array16ui { get; set; }
        public int[] Array32i { get; set; }
        public uint[] Array32ui { get; set; }
        public float[] Array32f { get; set; }
        
        public Matrix3x3[] ArrayMatrix3x3 { get; set; }
        public Matrix4x4[] ArrayMatrix4x4 { get; set; }
        public Sampler[] ArraySampler { get; set; }
    }
}
